package y_2025.m11.d11;

import java.util.concurrent.atomic.AtomicInteger;

// 错误示例：两个独立的CAS不能保证原子性
public class BankAccount {
    private AtomicInteger balance = new AtomicInteger(100);
    private AtomicInteger version = new AtomicInteger(0);
    
    public void transfer(int amount) {
        // 这两个CAS操作不是原子的
        balance.addAndGet(amount);    // CAS1
        version.incrementAndGet();    // CAS2
        // 在两个CAS之间，其他线程可能看到不一致的状态
    }
}

